Internet technology is, has been and still remains, a rapidly developing field, particularly in the area of network optimization and in particular for improving the end-user browsing experience. In computer networks, a proxy server is a server (a computer system or an application program) which services the requests of its clients (e.g. request for a web page, connection establishment, etc.) by forwarding the requests to other servers, typically web servers.
An Internet application (e.g., a FTP client that uses the FTP protocol or any other Internet application such as a WEB browser) usually manages at least two relevant interfaces, a first interface to a local mass storage device referred to as a mass storage interface through which the internet application manages content stored in a cache by way of a cache manager using a host device file system (HDFS). More generally, however, any number of internet applications can each manage their own content stored in the local mass storage device through their respective logical interfaces where each of these individual storage areas are managed by their own set of rules. In the case where a representative internet application takes the form of a browser application, the browser cache manager uses a set of rules, also referred to as browser cache policies, to serve the browser with appropriate content. In order to improve response time and preserve network bandwidth, the browser cache will typically store content based upon the relevant rule(s) set forth by the cache policies. For example, the browser cache manager (following the relevant cache policies established for a particular browser) can store content (in the form of a WEB page for example) based upon previously retrieved WEB pages in anticipation that the browser is likely to request that particular WEB page again in the near future. In this way, instead of using valuable network resources, the browser cache manager can retrieve the relevant WEB page stored locally in the browser cache.
Another interface used by the internet application can be used for internet connectivity such as management of HTTP commands that are carried over a network connection in communication with a network resource that can be either a local resource or a remote resource. In the case of mobile browsing the browser usually gets access to the remote resource/server through a proxy server that can perform content optimization/adaptation/filtering/compression, and so on in order to preserve valuable mobile link resources. Proxy servers can also be used in enterprise systems that require additional tasks such as access control on the edge of the Internet. Another value lies in the management of a proxy cache that can apply ‘content pre-fetching techniques” so as to pre-cache content “on the edge of the Internet” (i.e., closer to the user's browser). In this way, the browsing experience can be accelerated since requested content is on hand when needed.
However, since the browser cache and the proxy cache are managed independently of each other, there can be little or no “learning” from or about each other's cache policies. Therefore, there can be no overall cache management policy since the proxy cache and the browser cache are guided by their own set of rules that may or may not be known to the other since the browser application and the proxy can be supplied by different vendors. This lack of overall cache management policy can create inefficiencies that can result in a less than optimal browsing experience due to, in part, the inefficient allocation of storage resources. Such inefficiencies can include, for example, duplicating content stored in both the proxy cache and the browser cache, resulting in an inefficient use of network and storage resources (i.e., unnecessarily sending the browser content over the network link).
A proposed solution includes integrating a client agent on the mobile handset in order to synchronize between the browser and the proxy cache. However, since the client agent is typically application specific its use is limited to specific platforms. Due in part to the heterogeneity of host operating systems, particularly in mobile platforms, the usefulness of the client agent may be quite limited. This heterogeneity is made even worse in the case of a “closed” operating systems (such as Nucleus) as opposed to that of “open” operating systems such as Windows, Symbian, and the like. Since different mobile handsets may run on different operating systems, such implementation typically requires complex software integration. This software integration may prove even more complex when using mobile handsets that run on non-open operating systems.
Therefore, a method, system, and apparatus that overcomes the limitations besetting the internet application experience that includes mobile web browsing.